#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<stdlib.h>

//模拟孤儿进程的代码
int main()
{
  pid_t id=fork();
  if(id<0)
  {
    perror("fork");
    return 1;
  }
  else if(id==0) //child
  {
    printf("i am child ,pid:%d\n",getpid());
    sleep(10);
  }
  else //parent
  {
    printf("i am parent,pidd:%d\n",getpid());
    sleep(3);
    exit(0);
  }

  return 0;
}


//模拟僵尸进程的代码
//int main()
//{
//  pid_t id=fork();
//  if(id<0)
//  {
//    perror("fork");
//    return 1;
//  }
//  else if(id==0)
//  {
//    printf("child[%d] is begin Z...\n ",getpid);
//    sleep(5);
//    exit(EXIT_SUCCESS);
//  }
//  else{
//    printf("parent[%d] is sleeping...\n",getpid());
//    sleep(30);
//  }
//
//  return 0;
//}


//测试父进程子进程代码
//int main()
//{
//  pid_t id=fork();
//  if(id<0)
//  {
//    perror("fork");
//    return 1;
//  }
//  else if(id==0)//child
//  {
//    int cnt=5;
//    while(cnt)
//    {
//      printf("i am child,pid:%d,ppid:%d,cnt:%d\n\n",getpid(),getppid(),cnt);
//      cnt--;
//      sleep(1);
//    }
//  }
//  else{//parent
//    while(1)
//    {
//       printf("i am parent,pid:%d,ppid:%d\n",getpid(),getppid());     
//        sleep(2);
//    }
//  }
//
//  return 0;
//}
